display reshares in sharing dialog
authorJyrki Gadinger <nilsding@nilsding.org>
Wed, 5 Mar 2025 11:06:53 +0000 (12:06 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Thu, 13 Mar 2025 11:08:07 +0000 (11:08 +0000)
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
src/gui/filedetails/sharemodel.cpp
src/gui/sharemanager.cpp
src/gui/sharemanager.h

index c23ed0b05aeb3767eda9198ded1b28aea6db172c..8c55a7b8c92e2b7a714e74294514d2b73a9cdc7f 100644 (file)
@@ -308,6 +308,7 @@ void ShareModel::updateData()
     _placeholderLinkShare.reset(new Share(_accountState->account(),
                                           placeholderLinkShareId,
                                           _accountState->account()->id(),
+                                          _accountState->account()->id(),
                                           _accountState->account()->davDisplayName(),
                                           _sharePath,
                                           Share::TypePlaceholderLink));
@@ -315,6 +316,7 @@ void ShareModel::updateData()
     _internalLinkShare.reset(new Share(_accountState->account(),
                                        internalLinkShareId,
                                        _accountState->account()->id(),
+                                       _accountState->account()->id(),
                                        _accountState->account()->davDisplayName(),
                                        _sharePath,
                                        Share::TypeInternalLink));
@@ -322,6 +324,7 @@ void ShareModel::updateData()
     _secureFileDropPlaceholderLinkShare.reset(new Share(_accountState->account(),
                                                         secureFileDropPlaceholderLinkShareId,
                                                         _accountState->account()->id(),
+                                                        _accountState->account()->id(),
                                                         _accountState->account()->davDisplayName(),
                                                         _sharePath,
                                                         Share::TypeSecureFileDropPlaceholderLink));
@@ -497,7 +500,7 @@ void ShareModel::slotSharesFetched(const QList<SharePtr> &shares)
     for (const auto &share : shares) {
         if (share.isNull() ||
             share->account().isNull() ||
-            share->getUidOwner() != share->account()->davUser()) {
+            share->getUidFileOwner() != share->account()->davUser()) {
             continue;
         }
 
index af9156916c3fe6c55a063b25fb80455a3a3fd945..74afc9b7c911948edfa8999a0aa489a2a36be65c 100644 (file)
@@ -54,7 +54,8 @@ static void updateFolder(const AccountPtr &account, QStringView path)
 
 Share::Share(AccountPtr account,
     const QString &id,
-    const QString &uidowner,
+    const QString &uidOwner,
+    const QString &uidFileOwner,
     const QString &ownerDisplayName,
     const QString &path,
     const ShareType shareType,
@@ -63,7 +64,8 @@ Share::Share(AccountPtr account,
     const ShareePtr shareWith)
     : _account(account)
     , _id(id)
-    , _uidowner(uidowner)
+    , _uidOwner(uidOwner)
+    , _uidFileOwner(uidFileOwner)
     , _ownerDisplayName(ownerDisplayName)
     , _path(path)
     , _shareType(shareType)
@@ -90,7 +92,12 @@ QString Share::getId() const
 
 QString Share::getUidOwner() const
 {
-    return _uidowner;
+    return _uidOwner;
+}
+
+QString Share::getUidFileOwner() const
+{
+    return _uidFileOwner;
 }
 
 QString Share::getOwnerDisplayName() const
@@ -195,7 +202,8 @@ QDate LinkShare::getExpireDate() const
 
 LinkShare::LinkShare(AccountPtr account,
     const QString &id,
-    const QString &uidowner,
+    const QString &uidOwner,
+    const QString &uidFileOwner,
     const QString &ownerDisplayName,
     const QString &path,
     const QString &name,
@@ -207,7 +215,7 @@ LinkShare::LinkShare(AccountPtr account,
     const QString &note,
     const QString &label,
     const bool hideDownload)
-    : Share(account, id, uidowner, ownerDisplayName, path, Share::TypeLink, isPasswordSet, permissions)
+    : Share(account, id, uidOwner, uidFileOwner, ownerDisplayName, path, Share::TypeLink, isPasswordSet, permissions)
     , _name(name)
     , _token(token)
     , _note(note)
@@ -334,7 +342,8 @@ void LinkShare::slotHideDownloadSet(const QJsonDocument &jsonDoc, const QVariant
 
 UserGroupShare::UserGroupShare(AccountPtr account,
     const QString &id,
-    const QString &owner,
+    const QString &uidOwner,
+    const QString &uidFileOwner,
     const QString &ownerDisplayName,
     const QString &path,
     const ShareType shareType,
@@ -343,7 +352,7 @@ UserGroupShare::UserGroupShare(AccountPtr account,
     const ShareePtr shareWith,
     const QDate &expireDate,
     const QString &note)
-    : Share(account, id, owner, ownerDisplayName, path, shareType, isPasswordSet, permissions, shareWith)
+    : Share(account, id, uidOwner, uidFileOwner, ownerDisplayName, path, shareType, isPasswordSet, permissions, shareWith)
     , _note(note)
     , _expireDate(expireDate)
 {
@@ -612,6 +621,7 @@ QSharedPointer<UserGroupShare> ShareManager::parseUserGroupShare(const QJsonObje
     return QSharedPointer<UserGroupShare>(new UserGroupShare(_account,
         data.value("id").toVariant().toString(), // "id" used to be an integer, support both
         data.value("uid_owner").toVariant().toString(),
+        data.value("uid_file_owner").toVariant().toString(),
         data.value("displayname_owner").toVariant().toString(),
         data.value("path").toString(),
         static_cast<Share::ShareType>(data.value("share_type").toInt()),
@@ -652,6 +662,7 @@ QSharedPointer<LinkShare> ShareManager::parseLinkShare(const QJsonObject &data)
     return QSharedPointer<LinkShare>(new LinkShare(_account,
         data.value("id").toVariant().toString(), // "id" used to be an integer, support both
         data.value("uid_owner").toString(),
+        data.value("uid_file_owner").toString(),
         data.value("displayname_owner").toString(),
         data.value("path").toString(),
         data.value("name").toString(),
@@ -674,6 +685,7 @@ SharePtr ShareManager::parseShare(const QJsonObject &data) const
     return SharePtr(new Share(_account,
         data.value("id").toVariant().toString(), // "id" used to be an integer, support both
         data.value("uid_owner").toVariant().toString(),
+        data.value("uid_file_owner").toVariant().toString(),
         data.value("displayname_owner").toVariant().toString(),
         data.value("path").toString(),
         (Share::ShareType)data.value("share_type").toInt(),
index 1cb51df467f30f05f244d8710b49ecf9901554a5..e0888f7baf8b018e47b25df540f6969774698c9f 100644 (file)
@@ -74,7 +74,8 @@ public:
      */
     explicit Share(AccountPtr account,
                    const QString &id,
-                   const QString &owner,
+                   const QString &uidOwner,
+                   const QString &uidFileOwner,
                    const QString &ownerDisplayName,
                    const QString &path,
                    const ShareType shareType,
@@ -99,6 +100,11 @@ public:
      */
     [[nodiscard]] QString getUidOwner() const;
 
+    /*
+     * Get the uid_file_owner
+     */
+    [[nodiscard]] QString getUidFileOwner() const;
+
     /*
      * Get the owner display name
      */
@@ -165,7 +171,8 @@ public slots:
 protected:
     AccountPtr _account;
     QString _id;
-    QString _uidowner;
+    QString _uidOwner;
+    QString _uidFileOwner;
     QString _ownerDisplayName;
     QString _path;
     ShareType _shareType;
@@ -207,7 +214,8 @@ class LinkShare : public Share
 public:
     explicit LinkShare(AccountPtr account,
         const QString &id,
-        const QString &uidowner,
+        const QString &uidOwner,
+        const QString &uidFileOwner,
         const QString &ownerDisplayName,
         const QString &path,
         const QString &name,
@@ -338,7 +346,8 @@ class UserGroupShare : public Share
 public:
     UserGroupShare(AccountPtr account,
         const QString &id,
-        const QString &owner,
+        const QString &uidOwner,
+        const QString &uidFileOwner,
         const QString &ownerDisplayName,
         const QString &path,
         const ShareType shareType,